package com.itheima.wemedia.service;

import com.itheima.common.vo.PageResultVo;
import com.itheima.wemedia.dto.WmNewsCanlDto;
import com.itheima.wemedia.dto.WmNewsDtoSave;
import com.itheima.wemedia.dto.WmNewsPageReqDto;
import com.itheima.wemedia.pojo.WmNews;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.wemedia.vo.WmNewsVo;

import java.util.List;
import java.util.Map;

/**
 * @description <p>自媒体图文内容信息 业务接口</p>
 *
 * @version 1.0
 * @package com.itheima.wemedia.service
 */
public interface WmNewsService extends IService<WmNews> {

    /**
     * 文章内容发布
     * @param dto
     * @param draft
     * @return
     */
    Long submit(WmNewsDtoSave dto, Boolean draft);

    /**
     *
     * @param dto
     * @return
     */
    PageResultVo listPage(WmNewsPageReqDto dto);

    /**
     * 通过id删除文章
     * @param wmNewsId
     */
    void deleteById(Long wmNewsId);

    /**
     * 文章上下架
     * @param map
     */
    void downOrUp(Map<String, Integer> map);

    /**
     * 后台管理： 文章人工审核，分页查询
     * @param dto
     * @return
     */
    PageResultVo<WmNewsVo> wmNewsPageAll(WmNewsPageReqDto dto);

    /**
     * 后台管理： 文章人工审核，文章审核通过
     * @param dto
     * @return
     */
    boolean authPass(WmNewsCanlDto dto);

    /**
     * 后台管理： 文章人工审核，文章审核驳回
     * @param dto
     * @return
     */
    boolean authFail(WmNewsCanlDto dto);

    /**
     * 后台管理： 文章人工审核，查询文章详情
     * @param wmNewsId
     * @return
     */
    WmNewsVo getWmNewsOne(Long wmNewsId);

    /**
     * 远程调用自媒体微服务查询文章信息  ————文章同步
     * @param dto  ：为了做分片处理
     * @return
     */
    List<WmNewsVo> syncArticleTask(WmNewsPageReqDto dto);
}
